// 时间输入框
function initDateModule(){
    var start = {
        elem: "#start",
        format: "YYYY/MM/DD hh:mm:ss",
        max: "2099-06-16 23:59:59",
        istime: true,
        istoday: true,
        choose: function (datas) {
            end.min = datas;
            end.start = datas
        }
    };
    var end = {
        elem: "#end",
        format: "YYYY/MM/DD hh:mm:ss",
        max: "2099-06-16 23:59:59",
        istime: true,
        istoday: true,
        choose: function (datas) {
            start.max = datas
        }
    };
    laydate(start);
    laydate(end);
}

/**
 * 时间格式化
 * @param date     要个格式化的时间
 */
function dateFormmat(date) {
    var day = date.getDate() > 9 ? date.getDate() : "0" + date.getDate();
    var month = (date.getMonth() + 1) > 9 ? (date.getMonth() + 1) : "0"
        + (date.getMonth() + 1);
    return date.getFullYear() + '-' + month + '-' + day;
}
/**
 * 时间格式化
 * @param date     要个格式化的时间
 */
function dateFormmatTime(date) {
    var hour = date.getHours();
    var minute = date.getMinutes();
    var second = date.getSeconds();
    var day = date.getDate() > 9 ? date.getDate() : "0" + date.getDate();
    var month = (date.getMonth() + 1) > 9 ? (date.getMonth() + 1) : "0"
        + (date.getMonth() + 1);
    return date.getFullYear() + '-' + month + '-' + day+" "+hour+":"+minute+":"+second;
}

/**
 * 判断集合是否含有非空方法
 * @param params     判断是否含空值的参数集合 无空值 => true
 */
function isNotHavingNull(params) {
    var flag = true;
    for (var key in params) {
        var value = params[key];
        if (value != null && value != "") {

        } else {
            flag = false;
        }
    }
    return flag;
}

/**
 * 清空模态框（弹窗）内输入框/文本域方法
 * @param modalNode     模态框（弹窗）jquery选择器
 */
function cleanUpInModal(modalNode) {
    modalNode.children("input").val(null);
    modalNode.children("textarea").val(null);
}

/**
 * 删除confirm弹窗
 * @param confirmFunction     点击确定按钮后触发的时间
 */
function myDeleteConfirm(confirmFunction) {
    swal(
        {
            title: "您确定要删除这条信息吗",
            text: "删除后将无法恢复，请谨慎操作！",
            type: "warning",
            showCancelButton: true,
            confirmButtonColor: "#DD6B55",
            confirmButtonText: "确定",
            closeOnConfirm: false
        },
        confirmFunction
    )
}

/**
 * 自定义confirm弹窗
 * @param title               弹窗主标题
 * @param text                弹窗解释性文字
 * @param iconType            弹窗图标类型 warning/success/error/info
 * @param confirmFunction     点击确定按钮后触发的事件
 */
function myConfirm(title, text, iconType, confirmFunction) {
    swal(
        {
            title: title,
            text: text,
            type: iconType,
            showCancelButton: true,
            confirmButtonColor: "#DD6B55",
            confirmButtonText: "确定",
            closeOnConfirm: false
        },
        confirmFunction
    )
}

/**
 * 提醒弹窗方法
 * @param title               弹窗主标题
 * @param text                弹窗解释性文字
 * @param iconType            图标类型 error,warning,info,success
 * @param okFunction          点击确定按钮后触发的事件
 */
function myAlert(title, text, iconType, okFunction) {
    swal(
        {
            title: title,
            text: text,
            type: iconType
        },
        okFunction
    )
}

/**
 * 模态框打开方法
 * @param modalNode           模态框jquery选择器
 */
function openModal(modalNode) {
    modalNode.modal("show");
}

/**
 * 模态框关闭方法
 * @param modalNode           模态框jquery选择器
 */
function closeModal(modalNode) {
    modalNode.modal("hide");
}

/**
 *
 * @param tableNode           数据表格jquery选择器
 * @param requestUrl          请求地址
 * @param columnArray         列参数数组
 * @param toolBarNode         工具栏jquery选择器
 * @param singleSelect        是否只能选中一行数据 true => 只能选一行
 */
function loadTable(tableNode, requestUrl, columnArray, toolBarNode,pageCount,singleSelect) {
    tableNode.bootstrapTable({
        url: requestUrl,
        method: 'GET',
        dataType: 'json',
        showExport: !0,
        striped: 0,                       //是否显示行间隔色
        exportDataType: 'all',
        toolbar: toolBarNode,             // 工具栏
        clickToSelect: !0,                // 点击当前行选中
        singleSelect: singleSelect,       // 是否只能选中一行数据
        minimumCountColumns: 2,           // 最少显示两列
        //showColumns: !0,                  // 选择显示列
        //showToggle: !0,                   // 是否选择卡片模式
        showRefresh: !0,                  // 是否显示刷新按钮
        iconSize: "outline",
        pagination: !0,                   // 设置分页
        sidePagination: "server",         // 分页方式：client客户端分页，server服务端分页（*）
        pageNumber: 1,                    // 初始化加载第一页，默认第一页
        pageSize: pageCount,                     // 每页的记录行数（*）
        pageList: [5,15],          // 可供选择的每页的行数（*）
        columns: columnArray
    })
}
/**
 *
 * @param tableNode           数据表格jquery选择器
 * @param requestUrl          请求地址
 * @param columnArray         列参数数组
 * @param toolBarNode         工具栏jquery选择器
 * @param singleSelect        是否只能选中一行数据 true => 只能选一行
 */
function loadTable1(tableNode, requestUrl, columnArray, toolBarNode,pageCount,showRef) {
    tableNode.bootstrapTable({
        url: requestUrl,
        method: 'GET',
        dataType: 'json',
        showExport: !0,
        striped: 0,                       //是否显示行间隔色
        exportDataType: 'all',
        toolbar: toolBarNode,             // 工具栏
        clickToSelect: !0,                // 点击当前行选中
        singleSelect: !0,       // 是否只能选中一行数据
        minimumCountColumns: 2,           // 最少显示两列
        //showColumns: !0,                  // 选择显示列
        //showToggle: !0,                   // 是否选择卡片模式
        showRefresh: showRef,                  // 是否显示刷新按钮
        iconSize: "outline",
        pagination: !0,                   // 设置分页
        sidePagination: "server",         // 分页方式：client客户端分页，server服务端分页（*）
        pageNumber: 1,                    // 初始化加载第一页，默认第一页
        pageSize: pageCount,                     // 每页的记录行数（*）
        pageList: [5,15],          // 可供选择的每页的行数（*）
        columns: columnArray
    })
}
/**
 *
 * @param tableNode           数据表格jquery选择器
 * @param requestUrl          请求地址
 * @param columnArray         列参数数组
 * @param toolBarNode         工具栏jquery选择器
 * @param singleSelect        是否只能选中一行数据 true => 只能选一行
 */
function loadTable1NoPage(tableNode, requestUrl, columnArray, toolBarNode,pageCount,showRef) {
    tableNode.bootstrapTable({
        url: requestUrl,
        method: 'GET',
        dataType: 'json',
        showExport: !0,
        striped: 0,                       //是否显示行间隔色
        exportDataType: 'all',
        toolbar: toolBarNode,             // 工具栏
        clickToSelect: !0,                // 点击当前行选中
        singleSelect: !0,       // 是否只能选中一行数据
        minimumCountColumns: 2,           // 最少显示两列
        //showColumns: !0,                  // 选择显示列
        //showToggle: !0,                   // 是否选择卡片模式
        showRefresh: showRef,                  // 是否显示刷新按钮
        iconSize: "outline",
        pagination: false,                   // 设置分页
        sidePagination: "server",         // 分页方式：client客户端分页，server服务端分页（*）
        pageNumber: 1,                    // 初始化加载第一页，默认第一页
        pageSize: pageCount,                     // 每页的记录行数（*）
        pageList: [5,15],          // 可供选择的每页的行数（*）
        columns: columnArray
    })
}
/**
 *
 * @param tableNode           数据表格jquery选择器
 * @param requestUrl          请求地址
 * @param columnArray         列参数数组
 * @param toolBarNode         工具栏jquery选择器
 * @param singleSelect        是否只能选中一行数据 true => 只能选一行
 */
function loadTableSection(tableNode, requestUrl, columnArray, toolBarNode,pageCount,showRef,obj) {
    tableNode.bootstrapTable({
        url: requestUrl,
        method: 'GET',
        dataType: 'json',
        showExport: !0,
        striped: 0,                       //是否显示行间隔色
        exportDataType: 'all',
        toolbar: toolBarNode,             // 工具栏
        clickToSelect: !0,                // 点击当前行选中
        singleSelect: true,       // 是否只能选中一行数据
        minimumCountColumns: 2,           // 最少显示两列
        //showColumns: !0,                  // 选择显示列
        //showToggle: !0,                   // 是否选择卡片模式
        queryParams: obj,
        queryParamsType: "limit",
        showRefresh: showRef,                  // 是否显示刷新按钮
        iconSize: "outline",
        pagination: false,                   // 设置分页
        sidePagination: "server",         // 分页方式：client客户端分页，server服务端分页（*）
        pageNumber: 1,                    // 初始化加载第一页，默认第一页
        pageSize: pageCount,                     // 每页的记录行数（*）
        pageList: [5,15],          // 可供选择的每页的行数（*）
        columns: columnArray
    });
}
// 带checkbox的列
var columnHavingCheckBox =
    {
        checkbox: true                   // 是否可以选中
    };

// 带序号的列
var columnHavingIndex =
    {
        field: '',
        title: '序号',
        formatter: function (value, row, index) {
            return index + 1;
        }
    };

// TODO 带按钮的列，仅供参照
var columnHavingButtons =
    {
        field: '',
        title: '操作',
        align: 'center',
        valign: 'middle',
        formatter: function (value, row, index) {
            return "<button class='btn btn-primary dim' type='button'  onclick='edit(" + index + ")'><i class='fa fa-edit'></i>&nbsp;修改</button>" +
                "<button class='btn btn-primary dim' type='button'  onclick='repower(" + index + ")'><i class='fa fa-gears'></i>&nbsp;授权</button>";
        }
    };

// TODO 带判断的列，仅供参照
var columnHavingCheck =
    {
        field: 'role_is_effect',
        title: '是否生效',
        align: 'center',
        valign: 'middle',
        formatter: function (value, row, index) {
            if (value == 1) {
                return "生效"
            } else {
                return "无效"
            }
        }
    };

/**
 * 条件查询
 * TODO 待完善
 * @param queryButtonNode     查询按钮jquery选择器
 * @param tableNode           数据表格jquery选择器
 * @param queryNode           查询输入框jquery选择器
 */
function query(queryButtonNode, tableNode, queryNode) {
    queryButtonNode.click(function () {
        var search = queryNode.val();

    });
}

/**
 * 表格刷新方法
 * @param tableNode           数据表格jquery选择器
 */
function refresh(tableNode) {
    tableNode.bootstrapTable('refresh', {
        query: null
    });
}

/**
 *
 * 点击按钮获得此行数据
 * @param tableNode           数据表格jquery选择器
 * @param index               选中行的index值
 * @returns {*}               返回包装好当前行数据的json对象
 */
function getNode(tableNode,index){
    tableNode.bootstrapTable("uncheckAll");
    tableNode.bootstrapTable("check", index);
    var nodes = tableNode.bootstrapTable("getSelections");
    return nodes[0];
}

/**
 *
 * @param array               要遍历的数组
 * @param obj                 要判断的数组中是否包含的值
 * @returns {boolean}         true包含/false不包含
 */
function contains(array,obj) {
    var i = array.length;
    while (i--){
        if (array[i] === obj) {
            return true;
        }
    }
    return false;
}